package com.git.hui.yinshua.biz.rest.models.goods.rsp;

import com.alibaba.fastjson.JSONArray;
import lombok.Data;
import org.springframework.util.CollectionUtils;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * 商品属性
 *
 * @author YiHui
 * @date 2024/6/13
 */
@Data
public class GoodsSpecDto implements Serializable {
    private Integer specId;

    private List<GoodsSpecItem> specItems;

    /**
     * 完整的属性json格式
     */
    private String spec;

    /**
     * 单价
     */
    private String price;
    /**
     * 折扣价格
     */
    private String discountPrice;
    /**
     * 库存 -1 表示无限库存
     */
    private Integer stock;

    /**
     * 销量
     */
    private Integer salesCnt;

    /**
     * 起购数量，默认是1
     */
    private Integer minCnt;

    /**
     * 拼团是否开启
     */
    private Boolean ptEnable;

    /**
     * 成团人数
     */
    private Integer ptNum;

    /**
     * 成团时长
     */
    private Integer ptTimePeriod;

    /**
     * 有尺寸信息时，这里显示尺寸宽
     */
    private Integer sizeW;
    /**
     * 有尺寸信息时，这里显示尺寸高
     */
    private Integer sizeH;


    public String getSpec() {
        if (CollectionUtils.isEmpty(specItems)) {
            return null;
        }

        List<Map> list = specItems.stream().map(GoodsSpecItem::getSpec).filter(Objects::nonNull).collect(Collectors.toList());
        return JSONArray.toJSONString(list);
    }
}